package cn.com.dashihui.web.controller;

import java.util.List;

import cn.com.dashihui.kit.DatetimeKit;
import cn.com.dashihui.web.base.BaseController;
import cn.com.dashihui.web.dao.GoodsSaleOption;
import cn.com.dashihui.web.dao.GoodsSaleSpec;
import cn.com.dashihui.web.dao.GoodsSaleTemplate;
import cn.com.dashihui.web.service.GoodsSaleSpecService;



/**
 * 平台基础商品管理，基础商品可由各分公司进行复制
 */
public class GoodsSaleSpecController extends BaseController {
	private GoodsSaleSpecService specService = new GoodsSaleSpecService();
	/**
	 * 规格页面
	 */
	public void index(){
		List<GoodsSaleSpec> list=specService.findAllSpecs();
    	setAttr("list", list);
        render("index.jsp");
    }
	/**
	 * 前往新增
	 */
	public void toAdd() {
		render("add.jsp");
	}
	/**
	 * 规格新增
	 */
	public void doAdd() {
		// 规格名称
		String specName = getPara("specName");
		GoodsSaleSpec spec = new GoodsSaleSpec().set("specName", specName)
					.set("specCreateDate", DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss"))
					;
		// 保存
		if (specService.save(spec)) {
			// 规格参数保存需要获得关联商品ID*************************************************start
			//接收前端的值
			String[] optionNames = getParaValues("optionName");  //此规格的参数名称
			//商品ID
			int specid = specService.findidByName(specName);
			if (optionNames != null && optionNames.length > 0) {
				for (int i = 0; i < optionNames.length; i++) {
					GoodsSaleOption option = new GoodsSaleOption();
					//将前端的值转为后端参数封装对象，并保存
					String optionName = optionNames[i]; //商品规格参数名称
					System.out.println(optionName);
					option.set("optionName", optionName)//商品规格名称
							.set("specid", specid)
							.set("optionCreateDate", DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss"))//创建日期
							;
					specService.saveOption(option);
					renderSuccess();
				}
			} else {
				renderResult(14);
				return;
			}
			renderFailed();
		}
	}
	/**
	 * 修改规格信息页面
	 */
	public void toEdit(){
		int id = getParaToInt(0,0);
		
		if(id!=0){
			setAttr("spec", specService.findById(id));
			setAttr("option", specService.findOptionById(id));
		}
		render("edit.jsp");
	}
	/**
	 * 根据名称查找规格信息并修改
	 */
	public void findspecName(){
		String specName = getPara("findspecName");
		GoodsSaleSpec spec = specService.findSpecByName(specName);
		int specId = spec.get("id");
		List<GoodsSaleOption> listOption = specService.findOptionById(specId);
		setAttr("spec",spec);
		setAttr("option",listOption);
		System.out.println(spec);
		render("edit.jsp");
	}
	/**
	 * 规格参数编辑
	 */
	public void doEdit() {
		// 规格名称
		String specName = getPara("specName");
		int id = getParaToInt("id", 0);
		System.out.println(id);
		GoodsSaleSpec spec = specService.findById(id).set("specName", specName)
					.set("specCreateDate", DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss"))
					;
		// 修改	
		if (specService.updatespec(spec)) {
			// 规格参数保存需要获得关联规格ID
			//接收前端的值
			String[] optionNames = getParaValues("optionName");  //此规格的参数名称
			//商品ID
			//删除原规格下的参数，重新添加
			specService.deteleOption(id);
			if (optionNames != null && optionNames.length > 0) {
				for (int i = 0; i < optionNames.length; i++) {
					GoodsSaleOption option = new GoodsSaleOption();
					//将前端的值转为后端参数封装对象，并保存
					String optionName = optionNames[i]; //商品规格参数名称
					System.out.println(optionName);
					option.set("optionName", optionName)//商品规格名称
							.set("specid", id)
							.set("optionCreateDate", DatetimeKit.getFormatDate("yyyy-MM-dd-HH-mm-ss"))//创建日期
							;
					specService.saveOption(option);
				}
			} else {
				renderResult(14);
				return;
			}
		}
		renderFailed();
	}
	/**
	 * 删除规格
	 */
	public void doDelete(){
		int id = getParaToInt(0,0);
		String specId = id+"";
		List<GoodsSaleTemplate> tem = specService.findTem(specId);
		System.out.println(tem);
		if (tem!=null && tem.size() >0) {
			renderResult(1);
			return;
		}
		if(id!=0&&specService.delete(id)){
			logger.info("删除规格【"+id+"】，并删除相应规格关联的参数信息");
			renderSuccess();
			return;
		}
		renderFailed();
	}
	/**
	 * 详情页面
	 */
	public void toDetail() {
		int id = getParaToInt(0,0);
		if(id!=0){
			setAttr("spec", specService.findById(id));
			setAttr("option", specService.findOptionById(id));
		}
		render("optionDetail.jsp");
	}
	/**
	 * 根据specName查询详情页面
	 */
	/*public void findindex(){
		String specName = getPara("findspecName");
    	renderResult(0, specService.findBySpecName(specName));
    }*/
}
